3.3 初始化

对复合类型(数组、切片、字典、结构体)变量初始化时,有一些语法限制。

  • 初始化表达式必须含类型标签。
  • 左花括号必须在类型尾部,不能另起一行。
  • 多个成员初始值以逗号分隔。
  • 允许多行,但每行须以逗号或右花括号结束。

正确示例:

type data struct{ 
   x int
   s string
} 
  
var a data=data{1, "abc"} 
  
b:=data{ 
   1, 
    "abc", 
} 
  
c:= []int{ 
   1, 
   2} 
  
d:= []int{1,2, 
   3,4, 
   5, 
}

错误示例:

var d data= {1, "abc"}  // 语法错误:unexpected{ (缺类型标签) 
  
d:=data
    {          // 语法错误:unexpected semicolon or newline(左花括号不能另起一行) 
       1, 
        "abc" 
    } 
  
d:=data{ 
   1, 
    "abc"        // 语法错误:need trailing comma before newline(须以逗号或右花括号结束) 
}